package com.itheima.gui;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

/*
 *      重点案例四,
 *          猜数字小游戏
 *
 *
 * */
//注意类名
public class GuessNumber01 {
    //main方法,程序开始的地方
    public static void main(String[] args) {
        //创建窗体对象
        JFrame jf = new JFrame();
        //设置大小(单位是px像素)
        jf.setSize(400, 400);
        //基本设置
        //1.窗体标题
        jf.setTitle("猜数字");
        //2.居中显示
        jf.setLocationRelativeTo(null);
        //3.窗体关闭停止程序
        jf.setDefaultCloseOperation(3);
        //4.设置窗体置顶:为了别的窗体覆盖它
        jf.setAlwaysOnTop(true);
        //取消默认布局
        jf.setLayout(null);


        //文本标签
        JLabel text = new JLabel("系统生成了了一盒1-100之间的数据,请猜一猜");
        //设置大小
        text.setBounds(70, 50, 350, 20);
        //将文本JLable标签的对象添加到窗体JFame对象中
        jf.add(text);

        //文本框
        JTextField jTextField = new JTextField();
        //设置大小
        jTextField.setBounds(120, 100, 150, 20);
        //键文文本框JTextField的对象添加到JFrame的对象中
        jf.add(jTextField);

        //按钮
        JButton jButton = new JButton("我猜");
        //设置大小和位置
        jButton.setBounds(145, 150, 100, 20);
        //将按钮JButton 添加到JFrame的对象窗体中
        jf.add(jButton);
        /*  1. 生成一个1 - 100 之间的随机数
         * 2. 猜的内容不能为空
         * 3. 每次根据猜的数据进行提示
         *
         *      分析:
         *         1.生成随机数
         *         2.判断非空
         *         3.转成String ->int 类型
         *         4.对数字进行比较
         *
         * */
        //生成一个随机数
        int Number = new Random().nextInt(100) + 1;
        //给按钮添加点击事件
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取框内的数据
                String strNumber = jTextField.getText();

                //进行非空判断
                if(strNumber.isEmpty()){
                    //弹框进行提示,数字不能为空
                    JOptionPane.showMessageDialog(jf, "猜的数字不能为空");
                    //结束方法
                    return;
                }
                //将String ---> int   记住转谁就调用谁的方法
                int sureNumber = Integer.parseInt(strNumber);

                //对数据进行判断
                //首先进行健壮性判断
                if(sureNumber < 1 || sureNumber > 100){
                    //消息弹框进行提示
                    JOptionPane.showMessageDialog(jf, "请输入正确范围内的数据,你的数据不再正确范围内");
                    //清空框内数据
                    jTextField.setText("");
                } else if (sureNumber > Number) {
                    JOptionPane.showMessageDialog(jf, "猜大了");
                    //清空框内数据
                    jTextField.setText("");
                }else if (sureNumber < Number){
                    JOptionPane.showMessageDialog(jf, "猜小了");
                    //清空框内数据
                    jTextField.setText("");
                }else {
                    JOptionPane.showMessageDialog(jf, "恭喜你猜对了");
                }

            }
        });
        //设置窗体可见
        jf.setVisible(true);
    }
}
